const events = require("events");
const emitter = new events.EventEmitter();
const eventHandler = () => {
  console.log("事件被触发，处理函数执行");
};
const eventHandlerWithParams = (...args) => {
  console.log("带参数的事件处理函数:", ...args);
};





(`
【注册事件】：on()
    语法：emitter.on(eventName, listener)
    参数：
        - eventName: 字符串或Symbol，事件名称
        - listener: 函数，事件触发时执行的回调函数
    返回值：返回emitter实例，可链式调用
    作用：为指定事件注册一个监听器函数
    注意：
        - 可以为同一个事件注册多个监听器，它们会按照注册顺序依次执行
        - 事件名称可以是字符串或Symbol类型
`);
emitter.on('eventHandler', eventHandler);
emitter.on('eventWithParams', eventHandlerWithParams);





(`
【触发事件】：emit()
    语法：emitter.emit(eventName[, ...args])
    参数：
        - eventName: 字符串或Symbol，要触发的事件名称
        - ...args: 可选，传递给监听器的参数
    返回值：布尔值，如果事件有监听器返回true，否则返回false
    作用：触发指定事件，执行所有注册的监听器函数
`);
emitter.emit('eventHandler'); // 触发事件
emitter.emit('eventWithParams', '参数1', '参数2'); // 触发事件并传递参数






(`
【移除事件】：off() / removeListener()
    语法：emitter.off(eventName, listener)
    参数：
        - eventName: 字符串或Symbol，事件名称
        - listener: 函数，要移除的监听器函数
    返回值：返回emitter实例，可链式调用
    作用：移除指定事件的某个监听器
    注意：removeListener是off的别名，功能相同
`);
emitter.off('eventHandler', eventHandler);
emitter.removeListener('eventWithParams', eventHandlerWithParams); // 与上面等价

